package com.ruoyi.web.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.web.domain.QgPayBank;
import com.ruoyi.web.enums.CommonDictEnum;
import com.ruoyi.web.mapper.QgPayBankMapper;
import com.ruoyi.web.service.IQgPayBankService;
import com.ruoyi.web.utils.CommonUtil;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * QGPay银行Service业务层处理
 *
 * @date 2023-03-15
 */
@Service
@AllArgsConstructor
public class QgPayBankServiceImpl implements IQgPayBankService {
    private final QgPayBankMapper qgPayBankMapper;
    private final CommonUtil commonUtil;

    /**
     * 查询QGPay银行
     *
     * @param id QGPay银行主键
     * @return QGPay银行
     */
    @Override
    public QgPayBank selectQgPayBankById(Long id) {
        return qgPayBankMapper.selectQgPayBankById(id);
    }

    /**
     * 查询QGPay银行列表
     *
     * @param qgPayBank QGPay银行
     * @return QGPay银行
     */
    @Override
    public List<QgPayBank> selectQgPayBankList(QgPayBank qgPayBank) {
        List<QgPayBank> list = qgPayBankMapper.selectQgPayBankList(qgPayBank);

        // 遍历
        list.forEach(i -> {
            // 翻译字典想
            i.setStatus(CommonDictEnum.Status.findName(i.getStatus()));
        });

        return list;
    }

    /**
     * 新增QGPay银行
     *
     * @param qgPayBank QGPay银行
     * @return 结果
     */
    @Override
    public int insertQgPayBank(QgPayBank qgPayBank) {
        commonUtil.initCreateAbout(qgPayBank);
        return qgPayBankMapper.insertQgPayBank(qgPayBank);
    }

    /**
     * 修改QGPay银行
     *
     * @param qgPayBank QGPay银行
     * @return 结果
     */
    @Override
    public int updateQgPayBank(QgPayBank qgPayBank) {
        qgPayBank.setUpdateTime(DateUtils.getNowDate());
        return qgPayBankMapper.updateQgPayBank(qgPayBank);
    }

    /**
     * 批量删除QGPay银行
     *
     * @param ids 需要删除的QGPay银行主键
     * @return 结果
     */
    @Override
    public int deleteQgPayBankByIds(Long[] ids) {
        return qgPayBankMapper.deleteQgPayBankByIds(ids);
    }

    /**
     * 删除QGPay银行信息
     *
     * @param id QGPay银行主键
     * @return 结果
     */
    @Override
    public int deleteQgPayBankById(Long id) {
        return qgPayBankMapper.deleteQgPayBankById(id);
    }

    /**
     * 选项
     *
     * @param condition 查询条件
     * @return {@link List< QgPayBank>}
     * @since 2023/3/26 16:39
     */
    @Override
    public List<QgPayBank> optionList(QgPayBank condition) {
        condition.setStatus(CommonDictEnum.Status.NORMAL.getValue());
        return qgPayBankMapper.optionList(condition);
    }
}
